import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
import tensorflow as tf
from joblib import load

class NN(object):
    def __init__(self):
        self.loaded_model=tf.keras.models.load_model('NN/my_model.keras')
        self.scaler=load('NN/scaler.joblib')
    
    def get_hourly_trend(self):
        n_steps=7
        df_pivot=pd.read_csv('NN/scenic_data.csv')
        
        
        latest_data = df_pivot.iloc[-n_steps:].values
        latest_data = latest_data.reshape(1,n_steps,latest_data.shape[1])
        
        predicted=self.loaded_model.predict(latest_data)
        predicted_counts=self.scaler.inverse_transform(predicted)
        predicted_counts[predicted_counts<0]=0
        hourly_trend=predicted_counts[0].astype(int).tolist()
        
        print(hourly_trend)
        
if __name__=="__main__":
    nn=NN()
    nn.get_hourly_trend()